package models

type Lesson struct {
	Id   int64  `json:"id"  gorm:"column:id"`
	Name string `json:"name"  gorm:"column:name"`
}

func (Lesson) TableName() string {
	return "lesson"
}

type LessonDto struct {
	Id          int64     `json:"id"  gorm:"column:id"`
	Name        string    `json:"name"  gorm:"column:name"`
	StudentList []Student `json:"studentList" gorm:"many2many:lesson_student;foreignKey:Id;joinForeignKey:lesson_id;references:Id;joinReferences:student_id"`
	// 配置说明：
	// many2many:lesson_student: 中间的关联表
	// foreignKey:Id       : 主模型（LessonDto）的主键字段（对应数据库 lesson 表的 id）
	// joinForeignKey:lesson_id   : 中间表（lesson_student）中指向主模型的外键字段名
	// references:Id       : 关联模型（Student）的主键字段
	// joinReferences:student_id   : 中间表（lesson_student）中指向关联模型的外键字段名
}

func (LessonDto) TableName() string {
	return "lesson"
}
